package com.gf.pf.service;

import java.util.List;
import java.util.Map;

import com.gf.pf.model.User;
import com.gf.pf.model.UserJob;
import com.gf.pf.model.UserRole;

/**
 * @describe 用户
 * @date     2015年3月7日
 */
public interface UserService {

	/**
	 * 
	 * @describe 根据用户名、密码查询用户
	 * @param param
	 * @return
	 */
	User getUser(Map<String, Object> param);
	
	/**
	 * 
	 * @describe 根据用户名、密码查询用户
	 * @param user
	 * @return
	 */
	User getUserForXml(User user);
	
	/**
	 * 
	 * @description 查询部门下的所有用户
	 * @return List<User>
	 */
	List<User> getUserByDepId(String depId);
	
	/**
	 * 
	 * @describe 修改用户密码
	 * @param param
	 * @return
	 */
	Integer modifyUserPassword(User user);
	
	/**
	 * 
	 * @describe 保存用户
	 * @param user
	 */
	Integer saveUser(User user);
	
	/**
	 * 
	 * @description 根据用户Id查询用户信息
	 * @return User
	 */
	User getUserById(String id);
	
	/**
	 * 
	 * @description 修改用户信息
	 * @return Integer
	 */
	Integer modifyUser(User user);
	
	/**
	 * 
	 * @description 删除用户
	 * @return Integer
	 */
	Integer deleteUser(String userId);
	
	/**
	 * 
	 * @description 根据用户id查询所属职位
	 * @return List<Map<String, String>>
	 */
	List<Map<String, String>> jobByUserId(String userId);
	
	/**
	 * 
	 * @description 根据用户id删除所包含的职位
	 * @return Integer
	 */
	Integer deleteJobByUser(String userId);
	
	/**
	 * 
	 * @description 根据用户id保存所包含的职位
	 * @return Integer
	 */
	Integer saveJobByUser(UserJob uj);
	
	/**
	 * 
	 * @description 根据用户id查询所属角色
	 * @return List<Map<String,String>>
	 */
	List<Map<String, String>> roleByUserId(String userId);
	
	/**
	 * 
	 * @description 根据用户id删除所包含的角色
	 * @return Integer
	 */
	Integer deleteRoleByUser(String userId);
	
	/**
	 * 
	 * @description 根据用户id保存所包含的角色
	 * @return Integer
	 */
	Integer saveRoleByUser(UserRole ur);
	
	/**
	 * 
	 * @description 密码重置
	 * @return Integer
	 */
	Integer resetUserPwd(User user);
}
